The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also correspond to embodiments of the claimed inventions.
Business processes span every department in every industry. They define the best practices of a company. In most companies, processes are manual. They are defined and enforced with, for example, spreadsheets, email, and word of mouth. The result is inconsistent execution, lost opportunities, and higher operating costs.
Increasingly, business processes can be performed using software. Modern software development is evolving toward network-based processing systems that provide access to data and services via the Internet or other networks. In contrast to traditional systems that host networked applications on dedicated server hardware, a “cloud” computing model allows applications to be provided over the network “as a service” or “on-demand” by an infrastructure provider. The infrastructure provider typically abstracts the underlying hardware and other resources used to deliver a customer-developed application so that the customer no longer needs to operate and support dedicated server hardware.
Multi-tenant cloud-based architectures have been developed to improve collaboration, integration, and community-based cooperation between customer tenants without sacrificing data security. Generally speaking, multi-tenancy refers to a system where a single hardware and software platform simultaneously supports multiple user groups from a common data storage element. The multi-tenant design provides a number of advantages over conventional server virtualization systems. First, the multi-tenant platform operator can often make improvements to the platform based upon collective information from the entire tenant community. Additionally, because all users in the multi-tenant environment execute applications within a common processing space, it is relatively easy to grant or deny access to specific sets of data for any user within the multi-tenant platform, thereby improving collaboration and integration between applications and the data managed by the various applications. The multi-tenant architecture therefore allows convenient and cost effective sharing of similar application features between multiple sets of users. For example, a multi-tenant system may support an on-demand customer relationship management (CRM) application that manages the data for a particular organization's sales staff that is maintained by the multi-tenant system and facilitates collaboration among members of that organization's sales staff (e.g., account executives, sales representatives, and the like).
In practice, the different tenants often have different types of data and/or different relationships between data that they would like to maintain in the multi-tenant system, along with different types of operations they would like to be able to perform on their data to achieve different business objectives. Accordingly, some multi-tenant systems include an application platform that supports a customizable user experience, for example, to create custom applications, web pages, reports, tables, functions, and/or other objects or features. However, creating customizations can be difficult and time-consuming for users who are relatively inexperienced with computer programming or are otherwise unfamiliar with the platform(s) of the multi-tenant system.